import {commonUrl} from "../../common/commonUrl.js"
/**
 * url:网关路径
 * appid:网关要用的appid(去网关申请)
 */
const uat = {
    url: commonUrl +"/gateway/interface",
    APPID: 'g7r6lo3qji4ue8rx',
    appId:"9sYMCt9rkIOTZ1YX90g2gxVA9MSB2FkQ",
}
const prod = {
    url: commonUrl +"/gateway/interface",
    APPID: "4bgbdodqubaqyxfs",
    appId:"2ea2b1f35f3c11e983e2005056ad53ff",
}
export const env = uat;     // dev||uat||prod  发布请修改环境值
const VERSION = 'V1.0';  //版本号

export default {
	post(parameters) {
        return new Promise((resolve, reject) => {
            let _default_ = {
                appid: env.APPID,
                req_time: new Date().getTime(),
                version: VERSION,
                data: {}
            }
            Object.assign(_default_, parameters)
            // 局部修改配置，局部配置优先级高于全局配置
            uni.$u.http.post(env.url, _default_, {
                params: {}, /* 会加在url上 */
                header: {}, /* 会与全局header合并，如有同名属性，局部覆盖全局 */
                dataType: 'json',
                // 注：如果局部custom与全局custom有同名属性，则后面的属性会覆盖前面的属性，相当于Object.assign(全局，局部)
                custom: {auth: true}, // 可以加一些自定义参数，在拦截器等地方使用。比如这里我加了一个auth，可在拦截器里拿到，如果true就传token
                responseType: 'text',
                timeout: 30000,
                withCredentials: false, // 跨域请求时是否携带凭证（cookies）仅H5支持（HBuilderX 2.6.15+）
                // 返回当前请求的task, options。请勿在此处修改options。非必填
                // getTask: (task, options) => {
                //      相当于设置超时时间500ms
                //      setTimeout(() => {
                //        task.abort()
                //      }, 500)
                // },
                //validateStatus: (statusCode) => { // statusCode 必存在。此处示例为全局默认配置。演示，非必填选项
              	//	return statusCode >= 200 && statusCode < 300
              	//}
            }).then(res => {
                let result = res.data;
                if(res.statusCode === 200) {
                    switch (result.success) {
                        case true:
                            resolve(result)
                            break;
                        default:
                            uni.hideLoading();
                            uni.showToast({
                                title: '请求数据失败...',
                                icon: 'none',
                                mask: true,
                                duration: 1500
                            });
                    }
                } else {
                    uni.hideLoading();
                    uni.showToast({
                        title: '网络请求失败,状态码：' + res.statusCode,
                        icon: 'none',
                        mask: true,
                        duration: 1500
                    });
                }
            }).catch(err => {
                uni.hideLoading();
                uni.showToast({
                    title: '网络请求失败...',
                    icon: 'none',
                    mask: true,
                    duration: 1500
                });
                reject(err.errMsg)
            })
        })
	}
}